package com.bewg.lightcontrol;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import reactor.core.publisher.Flux;
import reactor.netty.DisposableServer;
import reactor.netty.tcp.TcpServer;

@SpringBootApplication
public class LightControlApplication {

    public static void main(String[] args) {
        SpringApplication.run(LightControlApplication.class, args);
    }

//    @Bean
//    CommandLineRunner serverRunner(TcpDecoderHandler tcpDecoderHandler,TcpServerHandler tcpServerHandler) {
//        return strings -> {
//            createTcpServer(tcpDecoderHandler, tcpServerHandler);
//        };
//    }
//
//    /**
//     * 创建TCP Server
//     *
//     * @param tcpDecoderHanlder： 解析TCP Client上报数据的handler
//     */
//    private void createTcpServer(TcpDecoderHandler tcpDecoderHandler,TcpServerHandler tcpServerHandler ) {
//        DisposableServer server =
//        TcpServer.create()
//                .handle((in, out) -> {
//                    in.receive()
//                            .asByteArray()
//                            .subscribe();
//                    return Flux.never();
//                })
//                .doOnConnection(conn ->{
//                    conn.addHandler(tcpDecoderHandler);
//                })//实例只写了如何添加handler,可添加delimiter，tcp生命周期，decoder，encoder等handler
//                .doOnChannelInit((observer, channel, remoteAddress) ->
//                        channel.pipeline()
//                                .addFirst(tcpServerHandler))//<2>
//
//                .port(4196)
//                .bindNow();
//
//        server.onDispose()
//                .block();
//    }

}
